#ifndef CURSEUR
#define CURSEUR

#include "Ecran.h"
#include "Coordonnees.h"

struct sCurseur
{
  double x,y;
};

typedef struct sCurseur Curseur;

/*Precondition : cu non initialisee*/
void InitCurseur(Curseur  * cu);

/*Precondition : cu initialisee*/
void ModifCoordonneesCurseur(Curseur * cu,Coordonnees c);

/*Precondition : cu initialisee
  Postcondition : cu ne peut plus etre utilise*/
void EffacerCurseur(Curseur * cu);

/*Precondition : cu et e initialisee
  Postcondition : d est place dans une case du tableau Ecran*/
void PlacerDessinsEcran(const Curseur cu,Ecran * e,Dessins * d);

/*Precondition : cu et e initialisee
  Postcondition : on recupere l'adresse de dessins pour pouvoir la deplacer dans une
  autre case de l'ecran.*/
Dessins * RecupAdressDessins(const Curseur cu,const Ecran e);

/*Precondition : cu et e initialisee
  Postcondition : d est place a la nouvelle case du tableau Ecran.
  Si la case est deja prise, alors l'ancienne adresse est ecrasee au
  profit de la nouvelle (voir si on peut trouver d'autre solutions)*/
void DeplacerAdresseDessins(const Curseur cu,Ecran * e,Dessins * d);

/*Precondition : cu et e initialisee
  Postcondition : La case qui contient l'adresse que pointe le curseur
  est liberee*/
void EffacerAdressDessins(const Curseur cu,Ecran * e);

#endif /*FIN CURSEUR*/

